const http = require('http');
const fs = require("fs");
const path = require("path");
const DIRNAME = __dirname;
// 创建http服务器
const server = http.createServer();
// 处理request请求事件
/**
 * 模拟实现一个appach服务器
 *  Apach服务器有一个默认的www目录，所有存放在www目录中的资源都可以通过网址来访问
 *  localhost:80/a.txt
 *  localhost:80/index.html
 *  localhost:80/apple/login.html
 * 
 */
server.on("request", function (req, res) {
    let url = req.url;
    console.log("请求", url, getPath(url))
    // if(url === "/"){
    //     res.end("Hello world!")
    // } else {
    //     res.end("404 not found")
    // }
    var $index = new RegExp(/\.(index)$/);
    var $txt = new RegExp(/\.(txt)$/);
    var $img = new RegExp(/\.(jpg|png|gif)$/);
    if (url === "/")
        url = "/index.html";
    

    fs.readFile(getPath(url), function (err, data) {
        if (err) {
            res.end("404 not found!");
            return;
        }
        console.log(url)
        if ($index.test(url)) {
            res.writeHead(200, { 'Content-Type': 'text/html', 'charset': 'UTF-8' })
        } else if ($txt.test(url)) {
            res.writeHead(200, { 'Content-Type': 'text/plain', 'charset': 'UTF-8' })
        } else if ($img.test(url)) {
            res.writeHead(200, {})
        }
        res.end(data);
    })
})

function getPath(url) {
    return path.resolve(DIRNAME, "../www" + url);
}
// 监听端口
server.listen(4000, function (err) {
    console.log("listening 3000");
})